package com.pacotes.questionario;


import java.util.ArrayList;
import javax.swing.JFrame;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Usada para administrar a criacão das telas pedindo as respostas do usuário. Gera a tudo a partir de questẽos.
 * @author matheus
 */
public class AdmTelas {

    private ArrayList<Questao> questoes; //Lista de questões
    private Integer indexTela; //Controla em que questão está. FUnciona como um iterador
    private JFrame contexto; //Tela contexto em que foi chamada. Reiniciará após terminar as questões
    
    
    /**
     * 
     * @param questoes Tela contexto em que foi chamada. Reiniciará após terminar as questões
     * @param contexto Lista de questões
     */
    public AdmTelas(ArrayList<Questao> questoes, JFrame contexto) {
        this.questoes = questoes;
        indexTela = 0;
        this.proximaTela(); //Coloca a primeira tela
        this.contexto = contexto;
    }
    
    
    /**
     * Escolhe qual tela será chamada a partir do indíce da questão
     * @param indexQuestao Questão usada para gerar nova tela
     */
    private void geraTela (int indexQuestao)
    {
        Questao tmp = questoes.get(indexQuestao);
        if(tmp instanceof QuestaoDiscursiva)
        {
            new QuestaoDiscursivaView(tmp, this).setVisible(true); //View de questao discursiva
            
        }
        else
            new QuestaoObjetivaView(tmp, this).setVisible(true); //View de questão objetiva
        
    }
    
    //Mostra a proxima tela
    public void proximaTela(){
        if(indexTela >= questoes.size()){
            contexto.setVisible(true);
            return;
        }
        geraTela(indexTela); //Apresenta a tela desejada
        indexTela++;
    }
    
    
    
}
